package com.cj.publish.utils

import android.annotation.SuppressLint
import android.app.Activity
import android.content.Context
import android.content.Intent
import android.graphics.Bitmap
import android.graphics.BitmapFactory
import android.graphics.Color
import android.graphics.drawable.GradientDrawable
import android.os.Bundle
import android.view.Gravity
import android.view.View
import android.widget.Toast
import androidx.fragment.app.Fragment
import com.cj.tool.http.BaseObserver
import io.reactivex.Observable
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.schedulers.Schedulers
import java.text.SimpleDateFormat
import java.util.*


/**
 * ━━━━━━神兽出没━━━━━━
 * 　　　┏┓　　　┏┓
 * 　　┏┛┻━━━┛┻┓
 * 　　┃　　　　　　　┃
 * 　　┃　　　━　　　┃
 * 　　┃　┳┛　┗┳　┃
 * 　　┃　　　　　　　┃
 * 　　┃　　　┻　　　┃
 * 　　┃　　　　　　　┃
 * 　　┗━┓　　　┏━┛Code is far away from bug with the animal protecting
 * 　　　　┃　　　┃    神兽保佑,代码无bug
 * 　　　　┃　　　┃
 * 　　　　┃　　　┗━━━┓
 * 　　　　┃　　　　　　　┣┓
 * 　　　　┃　　　　　　　┏┛
 * 　　　　┗┓┓┏━┳┓┏┛
 * 　　　　　┃┫┫　┃┫┫
 * 　　　　　┗┻┛　┗┻┛
 * ━━━━━━感觉萌萌哒━━━━━━
 *
 * Created by yi on 2021/1/21.
 */

inline fun <reified T : Activity> Context.gotoAct() {
    startActivity(Intent(this, T::class.java))
}

inline fun <reified T : Activity> Context.gotoAct(bundle: Bundle) {
    startActivity(Intent(this, T::class.java).apply {
        putExtras(bundle)
    })

}

fun Activity.toast(string: String) {
    toastStr(context = this, str = string)
}

fun Fragment.toast(string: String) {
    activity?.let { toastStr(context = it, str = string) }
}

/**
 * 统一显示信息
 */
private var mToast: Toast? = null

@SuppressLint("ShowToast")
fun toastStr(context: Context, str: String?) {
    if (mToast == null) {
        mToast = Toast.makeText(context, str, Toast.LENGTH_SHORT)
    } else {
        mToast!!.setText(str)
    }
    mToast!!.setGravity(Gravity.CENTER, 0, 0)
    mToast!!.show()
}

/**
 * 圆角
 *
 * */
fun View.setRoundRectBg(color: Int, radius: Int) {
    background = GradientDrawable().apply {
        setColor(color)
        cornerRadius = radius.toFloat()
    }

}

fun <T> execute(observable: Observable<T>, observer: BaseObserver<T>) {
    observable.subscribeOn(Schedulers.io())
        .unsubscribeOn(Schedulers.io())
        .observeOn(
            AndroidSchedulers.mainThread(),
            true
        ) //.compose(RxUtils.bindToLifecycle(activity))
        .subscribe(observer)
}

@SuppressLint("SimpleDateFormat")
fun getTime(date: Date): String {//可根据需要自行截取数据显示
    val format = SimpleDateFormat("yyyy-MM-dd")
    return format.format(date)
}


